package com.winchain.chainbill.basic.charge.controller;

import com.shell.bee.base.annotation.Logging;
import com.shell.bee.entity.mvc.RetMsg;
import com.shell.bee.mvc.controller.BaseController;
import com.shell.bee.persistence.model.PageLimit;
import com.shell.framework.utils.CommonDataUtil;
import com.winchain.chainbill.basic.charge.service.ValRetBizService;
import com.winchain.chainbill.basic.charge.vo.ValBizVo;
import java.math.BigDecimal;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ValBizController extends BaseController {
	@Autowired
	private ValRetBizService valRetBizService;

	@RequestMapping
	@Logging(module = "����������", methods = "������������������")
	public List<ValBizVo> queryValRetBizList(PageLimit limit, ValBizVo bizVo) {
		return this.valRetBizService.selectValRetBizListForPage(limit, bizVo);
	}

	@RequestMapping
	@Logging(module = "����������", methods = "������������������")
	public List<ValBizVo> queryValRetBizStats(PageLimit limit, ValBizVo bizVo) {
		return this.valRetBizService.selectValRetBizStats(limit, bizVo);
	}

	@RequestMapping
	@Logging(module = "����������", methods = "������������������")
	public BigDecimal countValAmtForPage(ValBizVo bizVo) {
		return this.valRetBizService.countValAmtForPage(bizVo);
	}

	@RequestMapping
	@Logging(module = "����������", methods = "����������������������������")
	public List<ValBizVo> queryValRetBizListForFin(PageLimit limit, ValBizVo bizVo) {
		bizVo.setCusId(CommonDataUtil.getCurEntId());
		return this.valRetBizService.selectValRetBizListForFin(limit, bizVo);
	}

	@RequestMapping
	@Logging(module = "����������", methods = "������������������������")
	public BigDecimal countValAmtForFin(ValBizVo bizVo) {
		bizVo.setCusId(CommonDataUtil.getCurEntId());
		return this.valRetBizService.countValAmtForFin(bizVo);
	}

	@RequestMapping
	@Logging(module = "����������", methods = "��������������")
	public RetMsg updateValBizState(String retIds, String state) {
		int count = this.valRetBizService.updateValBizState(retIds, state);
		if (count == -2) {
			return new RetMsg("error", true, "��������������������");
		}
		if (count == -1) {
			return new RetMsg("error", true, "������������������������������");
		}
		if (count > 0) {
			return new RetMsg("success", true, "����������������");
		}
		return new RetMsg("error", true, "��������������������������");
	}
}
